【 YouTube の再生リストを分解して埋め込み処理を行った各動画を個別に制御する方法 】
  ソース 【 A 】 : 再生リストをパネルに埋め込む処理のコーディング

    // プレーヤ用 API をユーチューブ動画サイトから読み込む

    var tag = document.createElement('script'); 
    tag.src = "http://www.youtube.com/player_api"

    var firstScriptTag = document.getElementsByTagName('script')[0]; 
    firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 

    // 仮の埋め込み処理する動画のコード

    var video = 'T_t9B87xUBo';

    // 埋め込み処理する再生リストのコード

    var video_list = 'PLL88QzNiFV4hAhyykCQK5M6E6epCrAgd1';

    // メインパネルのサイズ

    var player_h = '450';
    var player_w = '780';

    // サブパネルのサイズ

    var player_h2 = '215';
    var player_w2 = '380';

    // 再生リストの動画数と処理をコントロールするフラグ

    var nos = 0
    var no = 0

    var done = false
    var done1 = false
    var done2 = false
    var done3 = false

    var disp_no = 0
    var player_no = 0;

    var player;

    // 埋め込み処理された各プレーヤのオブジェクト値の格納

    var player_main;
    var player_sub = new Array( 10 );

    // 仮の動画をメインパネルに埋め込む処理
    // ここで直接再生リストを埋め込む処理は実現できない
    
    function onYouTubePlayerAPIReady() { 
        player = new YT.Player('player1', {
          height: player_h,
          width: player_w,
          videoId: video,
        playerVars: {
           autoplay: 0,
           controls: 0,
           loop: 0,
           rel: 0,
           showinf: 0,
           wmode: 'transparent'
        },
          events: { 
            'onReady': onPlayerReady, 
            'onStateChange': onPlayerStateChange 
          } 
        });
    }

    // パネルの埋め込み処理が終了したら呼び出される

    function onPlayerReady( evt ) {
        if ( ! done1 ) $( '#message1' ).text( '準備完了!' );
        if ( ! done1 && ! done2 ) loadplaylist( evt );
        done1 = true;
    }

    // パネルの動作状態が変化したときに呼び出される

    function onPlayerStateChange( evt ) { 

        if ( evt.data == YT.PlayerState.PLAYING && !done ) {

            setTimeout( stopVideo, 6000 ); 
            done = true;

        }

        if ( evt.data == YT.PlayerState.ENDED && done1 ) {

            // player.playVideo( );

        }

        if ( evt.data == YT.PlayerState.BUFFERING && done2 ) {

            var val = true;
            player.setLoop( val );
            list_n = new Array( );
            list_n = player.getPlaylist( );
            nos = list_n.length;
            var nos1 = nos + 1;
            $( '#message1' ).text( '準備完了! ' + '再生リストの動画数は 【 ' + nos1 + '  】 ' );
            $( '#message2' ).text( '再生リスト 解体開始 !' );

            // メインパネルのオブジェクト値を格納
            player_main = player;

            done3 = true;
            setpanellist( nos1, list_n );

        }

        if ( evt.data == YT.PlayerState.PLAYING && done2 ) {

            var n = player_main.getPlaylistIndex( );
            no = n;
            var n1 = no + 1;
            var nos1 = nos + 1;
            $( '#message1' ).text( '再生中!' + ' 動画番号 【 ' + n1 + ' / ' + nos1 + '  】 ' );

        }

        // サブパネルのオブジェクト値を格納

        if ( evt.data == YT.PlayerState.BUFFERING && done3 && player_no > 0 ) {

            if ( ! player_sub[ player_no - 1 ] ) {
                player_sub[ player_no - 1 ] = evt.target;

            }

        }

    }

    function stopVideo() {
          // player.stopVideo( );
    }

    // 再生リストの埋め込み処理

    function loadplaylist( evt )
     {
        if ( ! done2 ) evt.target.loadPlaylist( 
                                        {    list: video_list,
                                            listType: 'playlist',
                                            index: 0,
                                            StartSeconds: 0,
                                            suggestedQuality: 'default'
                                        }
         );
        done2 = true;
     };